package cn.hy.机考.part03;

import java.util.Arrays;
import java.util.List;
import java.util.Scanner;
import java.util.stream.Collectors;

/**
 * @author hy
 * <p>
 * 二十六、最长连续子序列
 * 有 n 个正整数组成的一个序列。给定正整数 sum,求长度最长的连续子序列，使得他们的和等于 sum。
 * 返回此子序列的长度，如果没有要求的序列，返回-1
 * 1,2,3,4,2
 * 6
 * 输出:3
 * 解析:1,2,3 和 4,2 两个序列均能满足要求，所以最长的连续序列为 1,2,3 因此结果为 3
 * 1,2,3,4,2
 * 20
 * 输出:-1
 */
public class Demo26 {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while (sc.hasNext()) {
            List<Integer> list = Arrays.stream(sc.nextLine().split(",")).map(
                    Integer::parseInt).collect(Collectors.toList());
            int target = sc.nextInt();
            //对要找的结果集坐二次循环
            int max = 0;
            for (int i = 0; i < list.size(); i++) {
                int sub_len = 0;
                int sub_sum = 0;
                //对每一次找到的结果集长度与总和做一次清空
                for (int j = i; j < list.size(); j++) {
                    if (sub_sum > target)
                        break; //此时已经刚好等于结果了，不需要再往下加
                    sub_sum += list.get(j);
                    sub_len++;
                    if (sub_sum == target && sub_len > max) {
                        max = sub_len;
                    }
                }
            }
            System.out.println(max == 0 ? -1 : max);
        }
    }
}
